import org.eclipse.swt.events.PaintEvent;



/*** Robot - Interface ***/ 

public interface Robot extends Comparable<Robot>{
	
	//sets robot's starting position
	public void setStartingPosition(Position p);
	//sets robot's current position
	public void setCurrentPosition(Position p);
	// sets speed and heading parameters of robot so it can move accordingly
	public void move(int speed,int heading);
	// moves robot to the right place according to speed and heading
	public void act();
	// sets speed and heading to 0
	public void stop();
	// returns robots current position
	public Position getCurrentPosition();
	//returns distance from starting point to current point
	public long getDistance();
	//returns robots name
	public String getName();
	//return robot's fileName
	public String getFileName();
	//set file name
	public void setFileName(String fileName);
	//compare to another robot - according to name
	public int compareTo(Robot r);
	//returns true if picked up box and false if didn't
	public boolean pickupBox(Box box);
	//returns true if put down box and false if didn't
	public boolean putdownBox();
	//sets robot to has file state
	public void setHasFile(boolean bool);
	//sets robot to doesn't have file state
	public boolean hasFile();
	//returns robots speed limit
	public int getSpeedLimit();
	//returns robots heading limit
	public int getHeadingLimit();
	//returns robots direction in which it's heading
	public int getHeading();
	//returns robots speed 
	public int getSpeed();
	//set robots speed
	public void setSpeed(int speed);
	//set robots heading
	public void setHeading(int heading);
	//returns robot's type
	public String getType();
	//draw robot
	public void paint(PaintEvent e);
	
	
	
}
